#include"PriorityQueue.h"


int main()
{
    
    size_t givenArray[] = {35, 25, 20, 10, 5,3,2};
    char charArray[7] = {0};
    for (int i = 0; i < 7; i++)
    {
        charArray[i] = 'A';
    }
    HuffmanTreeNode *root = buildHuffmanTree(charArray,givenArray,sizeof(givenArray)/sizeof(givenArray[0]));
    HuffmanTreePrint(root);
    
    // size_t givenArray[] = {1, 2, 3, 4, 5};
    // char charArray[5] = {0};
    // for (int i = 0; i < sizeof(givenArray)/sizeof(givenArray[0]); i++)
    // {
    //     charArray[i] = 'A';
    // }
    // HuffmanTreeNode *root = buildHuffmanTree(charArray,givenArray,sizeof(givenArray)/sizeof(givenArray[0]));
    // HuffmanTreePrint(root);

    // PriorityQueue *pq = PQ_Create(1);
    // int arr[] = {5, 2, 8, 6, 0, 9, 18, 28, 48, 7, 4};
    // for (int i = 0; i < sizeof(arr)/sizeof(int); i++)
    // {
    //     PQ_Insert(pq, arr[i]);
    // }
    // while(!PQ_IsEmpty(pq))
    // {
    //     printf("%d ", PQ_Extract(pq));
    // }
    // return 0;

    // PriorityQueue *pq = PQ_Create(1);//先建最小优先队列
    // int arr[] = {5, 2, 8, 6, 0, 9, 18, 28, 48, 7, 4};
    // for (int i = 0; i < sizeof(arr) / sizeof(arr[0]);i++)
    // {
    //     PQ_Insert(pq, arr[i]);//实际是最小堆。
    // }
    // int *array = (int *)malloc( (sizeof(arr) / sizeof(arr[0]) * 2 - 1));
    // int count = 0;
    // for (int j = 0; j < (sizeof(arr) / sizeof(arr[0]) * 2 - 1);j++)
    // {
    //     array[j]=PQ_Extract(pq);
    //     count++;
    //     if(count!=0&&count%2==0)
    //         PQ_Insert(pq, array[j - 1] + array[j]);
    // }
    // return 0;
}
